import os

def write_to_file(content, filename='output.txt', mode='w', encoding='utf-8'):
    """
    通用写入函数（支持列表自动换行）
    :param content: 要写入的内容（字符串或列表）
    :param filename: 文件名
    :param mode: 文件模式（w=覆盖（默认）, a=追加, r=只读（不可用于写入）, x=创建新文件（若存在则报错））
    :param encoding: 编码格式 'utf-8' 或 'gbk'
    """
    try:
        with open(filename, mode, encoding=encoding) as f:
            if isinstance(content, list):
                # # 为每个元素添加换行符（保留原列表结构）
                # content = [line + '\n' for line in content]
                # f.writelines(content)
                # 使用 join() 方法自动换行（更简洁）
                f.write('\n'.join(content))
            else:
                f.write(content)
        print(f"成功写入 {filename}")
    except IOError as e:
        print(f"写入失败: {e}")
    except PermissionError:
        print("没有写入权限！")
    except FileNotFoundError:
        print(f"目录 {os.path.dirname(filename)} 不存在！")
    except Exception as e:
        print(f"发生未知错误: {str(e)}")

# 使用示例
# write_to_file("单行文本", 'example.txt', 'w') # 覆盖模式写入多行
# write_to_file(["行1\n", "行2"], 'example.txt', 'a')  # 追加模式写入多行

# # 获取当前目录下的所有文件名
# file_names = os.listdir('./input_folder/')
# # write_to_file(file_names, 'example.txt', 'a') # 以列表写入
# # 循环写入
# for fname in file_names:
#     write_to_file(fname, 'example.txt', 'a')
